'use strict';
var _ = require('lodash');
var objectJs = require('@/libs/object');
function ajaxController($scope){
    var text = `    // lodash 全面替换我之前的工具库
        //////////////////////////////////////////////////////////////////////////////
        // 判断是否基本元素
        // =====================
        // 2019年7月24日11:24:47 lodash解决方案
        //////////////////////////////////////////////////////////////////////////////
        _bs(_.isBoolean(false) == true ,result_flag_here
        _bs(_.isBoolean(null) == false ,result_flag_here
        _bs(_.isDate(new Date) == true ,result_flag_here
        _bs(_.isString('abc') == true ,result_flag_here
        _bs(_.isString(1) == false ,result_flag_here
        _bs(_.isNumber(3) == true ,result_flag_here
        _bs(_.isNumber(Infinity) == true ,result_flag_here
        _bs(_.isNumber('3') == false ,result_flag_here
        _bs(_.isRegExp(/abc/) == true ,result_flag_here
        _bs(_.isRegExp('/abc/') == false ,result_flag_here
        //////////////////////////////////////////////////////////////////////////////
        // 判断是否数组
        // =====================
        // 2019年7月24日11:24:47 lodash解决方案
        //////////////////////////////////////////////////////////////////////////////
        _bs(_.isArray([1, 2, 3]) == true ,result_flag_here
        _bs(_.isArray(document.body.children) == false ,result_flag_here
        _bs(_.isArray('abc') == false ,result_flag_here
        _bs(_.isArray(_.noop) == false ,result_flag_here
        //////////////////////////////////////////////////////////////////////////////
        // 判断是否空对象
        // =====================
        // 2019年7月24日11:24:47 lodash解决方案
        //////////////////////////////////////////////////////////////////////////////
        _bs(_.isEmpty(null) == true ,result_flag_here
        _bs(_.isEmpty(true) == true ,result_flag_here
        _bs(_.isEmpty(1) == true ,result_flag_here
        _bs(_.isEmpty([1, 2, 3]) == false ,result_flag_here
        _bs(_.isEmpty({ 'a': 1 }) == false ,result_flag_here
        //////////////////////////////////////////////////////////////////////////////
        // 原生代码判断类型
        // =====================
        // 2019年7月24日11:24:47 lodash解决方案
        //////////////////////////////////////////////////////////////////////////////
        _bs(objectJs.type(undefined) == 'undefined' ,result_flag_here
        _bs(objectJs.type(null) == 'null' ,result_flag_here
        _bs(objectJs.type(123) == 'number' ,result_flag_here
        _bs(objectJs.type('123') == 'string' ,result_flag_here
        _bs(objectJs.type(new Date()) == 'date' ,result_flag_here
        _bs(objectJs.type([]) == 'array' ,result_flag_here
        _bs(objectJs.type({}) == 'object' ,result_flag_here
        _bs(objectJs.type(false) == 'boolean' ,result_flag_here
        //////////////////////////////////////////////////////////////////////////////
        // 获得url字符串中所有的参数
        // =====================
        // liuyp 2019年1月22日19:49:31
        //////////////////////////////////////////////////////////////////////////////
        _bs(objectJs.url2obj('http://localhost:5001/#!/app/js/object'),result_flag_here
        _bs(objectJs.url2obj('x.min.js?a=1&b=2&c=3&d=84'),result_flag_here
        //////////////////////////////////////////////////////////////////////////////
        // 解析url获得所有内容
        // =====================
        // liuyp 2019年9月19日20:43:56
        //////////////////////////////////////////////////////////////////////////////
        _bs(objectJs.urlInfo("http://ads.union.jd.com:8080/static/js/common.js?a=1&b=2"),result_flag_here
        //////////////////////////////////////////////////////////////////////////////
        // url对象维护
        // =====================
        // liuyp 2019年9月19日20:43:56
        //////////////////////////////////////////////////////////////////////////////
        _bs(objectJs.urlChange("http://www.huistd.com/?id=3&ttt=3", 'id', 99),result_flag_here
        _bs(objectJs.urlChange("http://www.huistd.com/?id=3&ttt=3", 'haha', 33),result_flag_here
        //////////////////////////////////////////////////////////////////////////////
        // 正则对象整理
        // =====================
        // liuyp 2019年9月19日20:43:56
        //////////////////////////////////////////////////////////////////////////////
        _bs(objectJs.REGWXP.n01.test("中文"),result_flag_here
        _bs(objectJs.REGWXP.n02.test("中文"),result_flag_here
        _bs(objectJs.REGWXP.n03.test("冀A6205X"),result_flag_here
        _bs(objectJs.REGWXP.n04.test("abcABC"),result_flag_here
        _bs(objectJs.REGWXP.n05.test("123456"),result_flag_here
        _bs(objectJs.REGWXP.n06.test("<span>"),result_flag_here
        _bs(objectJs.REGWXP.n07.test("whereispal5@163.com"),result_flag_here
        _bs(objectJs.REGWXP.n08.test("whereispal5@163.com"),result_flag_here
        _bs(objectJs.REGWXP.n09.test("http://www.baidu.com"),result_flag_here
        _bs(objectJs.REGWXP.n10.test("http://www.baidu.com"),result_flag_here
        _bs(objectJs.REGWXP.n11.test("13831111449"),result_flag_here
        _bs(objectJs.REGWXP.n11.test("15819999999"),result_flag_here
        _bs(objectJs.REGWXP.n11.test("19987654321"),result_flag_here
        _bs(objectJs.REGWXP.n11.test("17711111111"),result_flag_here
        _bs(objectJs.REGWXP.n12.test("192.168.0.14"),result_flag_here
        _bs(objectJs.REGWXP.n12.test("172.30.30.23"),result_flag_here
        _bs(objectJs.REGWXP.n13.test("192.168.0.255"),result_flag_here
        _bs(objectJs.REGWXP.n14.test("031185572966"),result_flag_here
        _bs(objectJs.REGWXP.n14.test("0311-85572966"),result_flag_here
        _bs(objectJs.REGWXP.n15.test("052460"),result_flag_here
        _bs(objectJs.REGWXP.n16.test("av.jpg"),result_flag_here
        _bs(objectJs.REGWXP.n17.test("emaliya.rar"),result_flag_here
        _bs(objectJs.REGWXP.n18.test("2016-2-3"),result_flag_here
        _bs(objectJs.REGWXP.n18.test("2016-02-03"),result_flag_here
        _bs(objectJs.REGWXP.n18.test("2016-22-22"),result_flag_here
        _bs(objectJs.REGWXP.n19.test("123131897"),result_flag_here
        _bs(objectJs.REGWXP.n20.test("href = 123"),result_flag_here
        _bs(objectJs.REGWXP.n21.test("src = 123"),result_flag_here
        _bs(objectJs.REGWXP.n22.test("你好123Aa.哈"),result_flag_here
        //////////////////////////////////////////////////////////////////////////////
        // 对象转换为url参数格式
        // =====================
        // liuyp 2019年1月22日19:49:31
        //////////////////////////////////////////////////////////////////////////////
        _bs(objectJs.obj2url({a:1,b:2,c:3}),result_flag_here
    `;
    var dotest = function(code){
        try {
            var r = eval("("+code+")");
            if( r !== true && code.indexOf('==') > -1 ){ return '异常 ' + eval("("+ code.replace(/\=\=.*/, '') +")") }
            return r
        } catch(e){
            console.error("单元测试代码错误", e)
            return "UNITTESTERROR"
        } };
    text = text.replace(/\_bs\((.*)\,result\_flag\_here/g,function(a,b,c){
        var result = dotest(b);
        if( result === true ){ result = "UNITTESTOK" }
        return "UNITTESTTEST "+b+" UNITTESTRESULT "+ JSON.stringify(result)
    })
    $("#templateAPI").html(
        text.replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/\n[ ]{4}/g, '\n')
            .replace(/UNITTESTTEST/g, '<font color="#3333ff">测试代码: ')
            .replace(/UNITTESTRESULT/g, '</font><font color="#3333cc">结果</font>')
            .replace(/UNITTESTOK/g, '<span style="color: #4caf50;">单元测试通过</span>')
            .replace(/UNITTESTERROR/g, '<span style="color: #ff3300;">代码错误</span>')
    );
}
exports = module.exports = ajaxController;